package com.ydd.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.ydd.dto.SelectAllDTO;
import com.ydd.dto.YddLinkDTO;
import com.ydd.entity.YddLink;
import com.ydd.mapper.YddLinkMapper;
import com.ydd.result.PageResult;
import com.ydd.service.IYddLinkService;
import com.ydd.vo.YddLinkVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 *  友情链接服务实现类
 * </p>
 *
 * @author itcast
 * @since 2023-05-15
 */
@Service
public class YddLinkServiceImpl implements IYddLinkService {

    @Autowired
    private YddLinkMapper yddLinkMapper;

    /**
     * 分页查询友情链接
     *
     * @param selectAllDTO
     * @return
     */
    @Override
    public PageResult clickLink(SelectAllDTO selectAllDTO) {
        PageHelper.startPage(selectAllDTO.getPage(), selectAllDTO.getLimit(), selectAllDTO.getType());
        Page<YddLink> yddLinkPage = yddLinkMapper.selectAllLink(selectAllDTO);
        long total = yddLinkPage.getTotal();
        List<YddLink> result = yddLinkPage.getResult();
        return PageResult.builder()
                .count(total)
                .data(result)
                .totalPages(yddLinkPage.getPages())
                .currentPage(selectAllDTO.getPage())
                .pageSize(selectAllDTO.getLimit())
                .build();
    }

    /**
     * qbs
     * 修改友情链接
     *
     * @param yddLinkDTO
     */
    @Override
    public void update(YddLinkDTO yddLinkDTO) {
        yddLinkMapper.updateLink(yddLinkDTO);
    }

    /**
     * qbs
     * 添加链接
     *
     * @param yddLink
     */
    @Override
    public void addLink(YddLink yddLink) {
        yddLinkMapper.addLink(yddLink);
    }

    /**
     * qbs
     * 删除友情链接
     *
     * @param id
     */
    @Override
    public void deleteLink(String id) {
        yddLinkMapper.deleteLinkById(id);
    }

    /**
     * qbs
     * 链接详情
     *
     * @param id
     */
    @Override
    public YddLinkVO rowInfo(String id) {
        YddLinkVO yddLinkVO = yddLinkMapper.rowInfo(id);
        return yddLinkVO;
    }
}
